// import store from '@/store/index'
import { isBrowser, getQueryVariable } from '@/utils/util'
import request from '@/utils/request'

// 定位信息
export function getUserLocation(that, str) {
  if (isBrowser()) {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(function(position) {
        var longitude = position.coords.longitude
        var latitude = position.coords.latitude
        var unique_id = localStorage.getItem('unique_id')
        localStorage.setItem('longitude', longitude) // 经度
        localStorage.setItem('latitude', latitude) // 纬度
        client()
        return request({
          url: `/area/coord-address`,
          method: 'get',
          params: {
            latitude,
            longitude,
            unique_id
          }
        }).then((res) => {
          if (that) {
            if (that.citys) {
              that.citys = res.data.province
            } else if (!str && that.citys) {
              that.citys = '定位中...'
            } else {
              that.citys = '全部城市'
            }
          }
          localStorage.setItem('city', res.data.province)
        })
      }, function(err) {
        console.log(err)
      // alert(err.code)
      // code：返回获取位置的状态
      //          0  :  不包括其他错误编号中的错误
      // 1  :  用户拒绝浏览器获取位置信息
      // 2  :  尝试获取用户信息，但失败了
      // eslint-disable-next-line no-irregular-whitespace
      // ​3  :   设置了timeout值，获取位置超时了
      }, {
        enableHighAcuracy: true, // 位置是否精确获取
        timeout: 5000, // 获取位置允许的最长时间
        maximumAge: 1000 // 多久更新获取一次位置
      })
    }

  // MP(store().state.baiduAK).then(BMap => {
  //   var geolocation = new BMap.Geolocation()
  //   var gc = new BMap.Geocoder()
  //   geolocation.getCurrentPosition(function(r) {
  //     // eslint-disable-next-line no-undef
  //     if (this.getStatus() === BMAP_STATUS_SUCCESS) {
  //       var pt = r.point
  //       gc.getLocation(pt, function(rs) {
  //         var addComp = rs.addressComponents
  //         // var province = addComp.province
  //         var city = addComp.city
  //         // var area = addComp.district
  //         if (city) {
  //           localStorage.setItem('city', city)
  //           localStorage.setItem('longitude', rs.point.lng) // 经度
  //           localStorage.setItem('latitude', rs.point.lat) // 纬度
  //           client()
  //           if (that) {
  //             if (that.citys) {
  //               that.citys = city
  //             } else {
  //               that.citys = '定位中...'
  //             }
  //           }
  //         } else {
  //           client()
  //         }
  //       })
  //     } else {
  //       that.city = '定位失败'
  //     }
  //   }, { enableHighAccuracy: true })
  // })
  }
}
function detect() {
  var equipmentType = ''
  var agent = navigator.userAgent.toLowerCase()
  var android = agent.indexOf('android')
  var iphone = agent.indexOf('iphone')
  var ipad = agent.indexOf('ipad')
  if (android !== -1) {
    equipmentType = 'android'
  }
  if (iphone !== -1 || ipad !== -1) {
    equipmentType = 'ios'
  }
  return equipmentType
}
/**
 * 提交用户数据
 * @param {rcat_pc} client 客户端名称
 * @param {String} latitude 经度
 * @param {String} longitude 纬度
 * @param {String} unique_id 用户唯一ID
 */
export function client() {
  if (isBrowser()) {
    var platform = detect()
    var _channel = getQueryVariable('_channel')
    var client = 'rcat_pc'
    var unique_id = localStorage.getItem('unique_id')
    if (localStorage.getItem('latitude')) {
      var latitude = localStorage.getItem('latitude')
      var longitude = localStorage.getItem('longitude')
      if (_channel) {
        return request({
          url: `/client/collect`,
          method: 'get',
          params: {
            latitude,
            longitude,
            unique_id,
            platform,
            _channel
          }
        })
      } else {
        return request({
          url: `/client/collect`,
          method: 'get',
          params: {
            latitude,
            longitude,
            unique_id,
            platform
          }
        })
      }
    } else {
      if (_channel) {
        return request({
          url: `/client/collect`,
          method: 'get',
          params: {
            client,
            unique_id,
            platform,
            _channel
          }
        })
      } else {
        return request({
          url: `/client/collect`,
          method: 'get',
          params: {
            client,
            unique_id,
            platform
          }
        })
      }
    }
  }
}
